home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / Python 1.1 / Mac / MPW / README.MPW < prev   
Encoding:
Internet Message Format  |  1994-09-16  |  3.8 KB  |  [TEXT/R*ch]

  1. From: walker@island.com (Richard Walker)
  2. Date: Wed, 1 Jun 94 15:28:40 PDT
  3.  
  4. Compiling Python Under MPW C
  5. ============================
  6.  
  7. This directory contains the Makefiles, source files and scripts
  8. required to compile Python under MPW C.
  9.  
  10. Compiling:
  11. ----------
  12. the "buildall" file at the top level is an MPW script
  13. which rebuilds the entire Python source.
  14.  
  15. To build, start the MPW Shell and select the Worksheet window.
  16. Go to top level directory of the Python source tree.
  17. Type: buildall<ENTER>
  18.  
  19. To rebuild:
  20. Type: buildall clean<ENTER>
  21. Type: buildall<ENTER>
  22.  
  23. Configuration:
  24. --------------
  25. The files "Makefile", "config.h", "Mac:config.c" and
  26. "Modules:Makefile" are normally configured and/or generated
  27. automagically under Unix.
  28.  
  29. Macintosh programmers will have to be content with editing
  30. these files manually to reflect their desired configuration.
  31. The files provided here are examples only; Modules which 
  32. made it into this version are those which required little or 
  33. no modification.
  34.  
  35. Running:
  36. --------
  37. The top-level Makefile compiles Python as an MPW Tool.
  38. You can then run Python interactively from within
  39. the MPW Worksheet.
  40.  
  41. Diagnostics:
  42. ------------
  43. If Python fails to run by aborting in file "Parser:grammar1.c",
  44. at the end of the function "finddfa", line 46,
  45. try defining the preprocessor symbol "MPW_881_BUG" in 
  46. file "Parser:acceler.c", function "fixstate", line 107.
  47.  
  48. ---------------------------------------------------------------
  49.  
  50. Additional notes by Guido for Python 1.1:
  51. -----------------------------------------
  52.  
  53. I have tried this with MPW 3.2 and tweaked Richards Makefiles and
  54. buildall script slightly to work with Python 1.1.  The same configure
  55. file now works for THINK C 6.0 (or 7.0) and MPW 3.2.  It is essential
  56. that 'MPW' is defined when compiling with MPW; for both compilers,
  57. 'HAVE_CONFIG_H' should also be defined.  For MPW, the buildall script
  58. takes care of this.
  59.  
  60. I moved some files around or renamed them and modified the Makefiles
  61. accordingly.  All Mac specific files are now in the Mac subdirectory,
  62. especially config.c, config.h, macmodule.c, and (new) macmain.c.
  63.  
  64. I wouldn't bother with the Grammar subdirectory or the Parser
  65. generator (Pgen) -- the needed Pgen output files are part of the
  66. distribution.
  67.  
  68. If the buildall script stops at a compilation error you are usually
  69. left in one of the subordinate directories.
  70.  
  71. Instead of using the buildall script you can also once execute the Set
  72. and Export commands listed at its top (which set compiler and linker
  73. options) and in each of the directories Mac, Parser, Python, Objects,
  74. Modules and finally the python rot directory, execute the two command
  75.  
  76.     make >makefile.out
  77.     makefile.out
  78.  
  79. Or you could execute
  80.  
  81.     make
  82.  
  83. have a look at its output and execute selected commands from it.
  84.  
  85. The buildall script executes
  86.  
  87.     Directory {Python}
  88.  
  89. which normally prints the current directory, because {Python} is not
  90. defined.  If it is set to the python root directory, you could place
  91. buildall somewhere in your command search path and execute it from
  92. anywhere.
  93.  
  94. If you are mixing THINK C and MPW, you may experience weird errors in
  95. previously correct modules.  These disappear when you throw away the
  96. module's .pyc file.  The errors usually have to do with string
  97. literals containing '\n' or '\r'.  The reason is an incompatibility
  98. between their handling of '\n' and '\r' -- in MPW C, '\n' actually is
  99. ASCII CR while '\r' is ASCII LF, which is the reverse situation from
  100. any other ASCII based C implementation.  This behaviour is inherited
  101. by Python compiled with MPW C.  This is normally not a problem, but
  102. *binary* files written by one system will be mis-interpreted by the
  103. other, and this is what happens to the .pyc files.  There is no easy
  104. way to fix this in the source.  (This is a real shame, since the
  105. format of .pyc files was carefully designed to be independent of byte
  106. order and integer size -- deviations in the ASCII character codes were
  107. never anticipated.)
  108.